package com.reactim.message.config.management;

import lombok.Data;

/**
 * 配置导出结果
 * 
 * <p>封装配置导出操作的结果信息，包括导出状态、文件路径、
 * 格式信息和文件大小等。</p>
 * 
 * @author ReactIM Team
 * @version 1.0.0
 * @since 1.0.0
 */
@Data
public class ConfigurationExportResult {
    
    /**
     * 导出是否成功
     */
    private boolean success;
    
    /**
     * 结果消息
     */
    private String message;
    
    /**
     * 导出文件路径
     */
    private String filePath;
    
    /**
     * 导出格式
     */
    private ConfigurationFormat format;
    
    /**
     * 导出文件大小（字节）
     */
    private long fileSize;
    
    /**
     * 错误信息（如果导出失败）
     */
    private Exception error;
    
    /**
     * 获取格式化的文件大小
     * 
     * @return 格式化的文件大小字符串
     */
    public String getFormattedFileSize() {
        if (fileSize < 1024) {
            return fileSize + " B";
        } else if (fileSize < 1024 * 1024) {
            return String.format("%.2f KB", fileSize / 1024.0);
        } else {
            return String.format("%.2f MB", fileSize / (1024.0 * 1024.0));
        }
    }
}